home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / lang / ThreadLocal.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.4 KB  |  84 lines

  1. package java.lang;
  2.  
  3. import java.util.concurrent.atomic.AtomicInteger;
  4.  
  5. public class ThreadLocal<T> {
  6.    private final int threadLocalHashCode = nextHashCode();
  7.    private static AtomicInteger nextHashCode = new AtomicInteger();
  8.    private static final int HASH_INCREMENT = 1640531527;
  9.  
  10.    private static int nextHashCode() {
  11.       return nextHashCode.getAndAdd(1640531527);
  12.    }
  13.  
  14.    protected T initialValue() {
  15.       return null;
  16.    }
  17.  
  18.    public T get() {
  19.       Thread var1 = Thread.currentThread();
  20.       ThreadLocalMap var2 = this.getMap(var1);
  21.       if (var2 != null) {
  22.          ThreadLocalMap.Entry var3 = java.lang.ThreadLocal.ThreadLocalMap.access$000(var2, this);
  23.          if (var3 != null) {
  24.             return (T)var3.value;
  25.          }
  26.       }
  27.  
  28.       return (T)this.setInitialValue();
  29.    }
  30.  
  31.    private T setInitialValue() {
  32.       Object var1 = this.initialValue();
  33.       Thread var2 = Thread.currentThread();
  34.       ThreadLocalMap var3 = this.getMap(var2);
  35.       if (var3 != null) {
  36.          java.lang.ThreadLocal.ThreadLocalMap.access$100(var3, this, var1);
  37.       } else {
  38.          this.createMap(var2, var1);
  39.       }
  40.  
  41.       return (T)var1;
  42.    }
  43.  
  44.    public void set(T var1) {
  45.       Thread var2 = Thread.currentThread();
  46.       ThreadLocalMap var3 = this.getMap(var2);
  47.       if (var3 != null) {
  48.          java.lang.ThreadLocal.ThreadLocalMap.access$100(var3, this, var1);
  49.       } else {
  50.          this.createMap(var2, var1);
  51.       }
  52.  
  53.    }
  54.  
  55.    public void remove() {
  56.       ThreadLocalMap var1 = this.getMap(Thread.currentThread());
  57.       if (var1 != null) {
  58.          java.lang.ThreadLocal.ThreadLocalMap.access$200(var1, this);
  59.       }
  60.  
  61.    }
  62.  
  63.    ThreadLocalMap getMap(Thread var1) {
  64.       return var1.threadLocals;
  65.    }
  66.  
  67.    void createMap(Thread var1, T var2) {
  68.       var1.threadLocals = new ThreadLocalMap(this, var2);
  69.    }
  70.  
  71.    static ThreadLocalMap createInheritedMap(ThreadLocalMap var0) {
  72.       return new ThreadLocalMap(var0, (1)null);
  73.    }
  74.  
  75.    T childValue(T var1) {
  76.       throw new UnsupportedOperationException();
  77.    }
  78.  
  79.    // $FF: synthetic method
  80.    static int access$400(ThreadLocal var0) {
  81.       return var0.threadLocalHashCode;
  82.    }
  83. }
  84.